﻿using AnlianCommon.API.Commands.BasicInfos;
using AnlianCommon.API.Commands.Cottages;
using AnlianCommon.API.Commands.Departments;
using AnlianCommon.API.Commands.Fields;
using AnlianCommon.API.Commands.Flats;
using AnlianCommon.API.Commands.Personnels;
using AnlianCommon.API.Commands.Recordes;
using AnlianCommon.API.Commands.Roles;
using AnlianCommon.API.Commands.SheepFarmes;
using AnlianCommon.API.Commands.Startofseasons;
using AnlianCommon.Common.Domains.BeginningManagement;
using AnlianCommon.Common.Domains.OrganizationalUnits;
using AnlianCommon.Common.Domains.ProductionManagement;
using AnlianCommon.Common.Domains.SheepFarmHouse;
using AnlianCommon.Common.Domains.UserPermissions;
using AnlianCommon.Common.DTO;
using AutoMapper;
namespace AnlianCommon.API.PublicApproachs
{
    /// <summary>
    /// autoMapper公共共享类
    /// </summary>
    public class AutoMapperProfile:Profile
    {
        /// <summary>
        /// 构造函数
        /// </summary>
        public AutoMapperProfile()
        {
            //创建角色新增的映射 由 新增角色的入参 转换 为 角色实体
            CreateMap<RoleCreateCommand, Role>();
            CreateMap<PersonnelCreateCommand, Personnel>();
            CreateMap<BasicInfoCreateCommand, BasicInfo>();
            CreateMap<SheepFarmsCreateCommand, SheepFarm>();
            CreateMap<DepartmentCreateCommand, Department>(); 
            CreateMap<FieldCreateMoreCommand, Field>();
            CreateMap<CottageCreateCommand, Cottage>();
            CreateMap<StartofseasonCreateCommand, Startofseason>();




            //------------------------------------------------------------------------------------------------------
            ////创建角色权限查询的映射 由 查询角色权限的实体 转换 为 角色权限dto
            CreateMap<RolePerm, RolePermDto>().ReverseMap();
            ////创建羊场查询的映射 由 查询羊场的实体 转换 为 羊场dto
            CreateMap<SheepFarm, SheepFarmsDto>().ReverseMap();
            //创建单位新增的映射 由 新增单位的入参 转换 为 单位实体
            CreateMap<FlatsCreateCommand, Flat>();
            //创建后裔档案新增的映射 由 新增后裔档案的入参 转换 为 后裔档案实体
            CreateMap<DescendentCreateCommand, Descendent>();
            //创建种公母档案新增的映射 由 新增种公母档案的入参 转换 为 种公母档案实体
            CreateMap<RecordsCreateCommand, Record>();
        }
    }
}
